import { getApiClient } from '../utils/api';

export function useCategories11() {
  // 使用 useAsyncData 实现服务端渲染
  const { data, pending, error } = useAsyncData(
      'globalCategories', // 唯一缓存键（必填）
      async () => {
        try {
          const { data } = await getApiClient().get('/forum/classification/list');
          debugger
          return [
            ...data.filter(item => !item.hidden) // 过滤隐藏分类
          ];
        } catch (err) {
          console.error('分类加载失败:', err);
          return []; // 返回空数组保持页面结构
        }
      },
      {
        server: true, // 强制服务端执行[1,7](@ref)
        transform: input => input.slice(0, 10), // 仅保留前10条分类[7](@ref)
        pick: ['id', 'name', 'icon', 'schemaType'], // 控制传输体积[5](@ref)
        lazy: false, // 阻塞路由直到数据加载完成[1](@ref)
        headers: { 'Cache-Control': 'public, max-age=3600' } // 1小时缓存[5](@ref)
      }
  );

  // 动态生成分类页面的SEO元数据
  useSeoMeta({
    title: computed(() => `技术分类 - ${data.value?.[0]?.name || '掘金社区'}`),
    description: computed(() =>
        `涵盖${data.value?.slice(0,3).map(c => c.name).join('、')}等领域的专业技术文章分类`
    ),
    keywords: computed(() =>
        ['技术分类', ...data.value?.map(c => c.name)].join(',')
    ),
    ogImage: '/og-categories.jpg' // 分类页专用封面图[5](@ref)
  });

  return {
    categories: data,
    loading: pending,
    error
  };
}
